其他
Hadoop和Spark技术分享.ppt
相对于使用MapReduce,为什么使用Hive ? MapReduce实现复杂业务逻辑开发难度大 Hive提供类SQL语法,避免写MapReduce程序,开发相对快速 扩展功能方便,支持自定义函数 适合于做数据仓库工具,如ETL处理,数据分析等
集流批处理、交互式查询、机器学习及图计算等于一体 多线程模型,每个worker节点运行一个或多个executor服务,每个task作为线程运行在executor中,task间可共享资源 基于内存迭代式计算,适合低延迟、迭代运算类型作业 可以通过缓存共享rdd、DataFrame,提升效率中间结果支持checkpoint,遇错可快速恢复 map之间以pipeline方式运行,无需刷磁盘 Spark编程模型更灵活,支持多种语言并支持丰富的transformation和action的算子
适合离线数据处理 多进程模型,任务调度(频繁申请、释放资源)和启动开销大,不适合低延迟类型作业中间结果需要落地,需要大量的磁盘IO和网络IO影响性能 不适合迭代计算、交互式处理、流式处理 MR编程不够灵活,仅支持map和reduce两种操作。当一个计算逻辑复杂的时候,需要写多个MR job运行